home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1987-03-15 | 23.9 KB | 832 lines
100 REM DISPLAY Program. 110 REM Displays Genealogical Information 120 REM Copyright (c) 1983 - 1987 by: Melvin O. Duke. 130 DEFINT A-Z 600 REM Titles 610 TITLE$ = "Display Program" 620 TITLE$ = TITLE$ + " ON DISPLAY" 700 REM Terminate if not called from the Menu 710 IF DD.MENU$ <> "" THEN 770 720 COLOR 7,0 : KEY ON : CLS : LOCATE 15,1 730 PRINT "Cannot run the" 740 PRINT TITLE$ 750 PRINT "Program, unless selected from the MENU" 760 END 770 REM OK 900 REM Dimension Statements 940 DIM PERS(15), CH(MAX.PER) 1000 REM Produce the first screen 1010 KEY ON : CLS : KEY OFF 1020 REM Draw the outer double box 1030 R1 = 1 : C1 = 1 : R2 = 24 : C2 = 79 : GOSUB 1300 1040 REM Find the title location 1050 TITLE.POS = 40 - INT(LEN(TITLE$)/2) 1060 REM Draw the title box 1070 R1=3:C1=TITLE.POS-2:R2=6:C2=TITLE.POS+LEN(TITLE$)+1:GOSUB 1500 1080 REM Print the title 1090 LOCATE 4,TITLE.POS : PRINT TITLE$ 1100 LOCATE 5,40-INT(LEN(VERSION$)/2) : PRINT VERSION$; 1230 REM Draw the Copyright box 1240 R1 = 19 : C1 = 21 : R2 = 22 : C2 = 59 : GOSUB 1300 1250 REM Print the Copyright 1260 LOCATE 20,40-INT(LEN(COPY1$)/2) : PRINT COPY1$; 1270 LOCATE 21,40-INT(LEN(COPY2$)/2) : PRINT COPY2$; 1280 GOTO 1700 1300 REM subroutine to print a double box 1310 COLOR P 1320 FOR I = R1 + 1 TO R2 - 1 1330 LOCATE I, C1 : PRINT CHR$(186); 1340 LOCATE I, C2 : PRINT CHR$(186); 1350 NEXT I 1360 LOCATE R1, C1+1 : PRINT STRING$(C2-C1-1,205); 1390 LOCATE R2, C1+1 : PRINT STRING$(C2-C1-1,205); 1400 LOCATE R1, C1 : PRINT CHR$(201); 1410 LOCATE R1, C2 : PRINT CHR$(187); 1420 LOCATE R2, C1 : PRINT CHR$(200); 1430 LOCATE R2, C2 : PRINT CHR$(188); 1440 COLOR W 1450 RETURN 1500 REM subroutine to print a single box 1510 COLOR B 1520 FOR I = R1 + 1 TO R2 - 1 1530 LOCATE I, C1 : PRINT CHR$(179); 1540 LOCATE I, C2 : PRINT CHR$(179); 1550 NEXT I 1560 LOCATE R1, C1+1 : PRINT STRING$(C2-C1-1,196); 1590 LOCATE R2, C1+1 : PRINT STRING$(C2-C1-1,196); 1600 LOCATE R1, C1 : PRINT CHR$(218); 1610 LOCATE R1, C2 : PRINT CHR$(191); 1620 LOCATE R2, C1 : PRINT CHR$(192); 1630 LOCATE R2, C2 : PRINT CHR$(217); 1640 COLOR W 1650 RETURN 1700 REM ask user to press a key to continue 1710 LOCATE 25,1 1720 PRINT "Have Data Diskette(s) in Place, then Press any key to continue."; 1730 K$ = INKEY$ : IF K$ = "" THEN 1730 1740 KEY ON : CLS 1750 GOTO 3530 2000 REM DISPLAY Program Starts Here. 2010 REM Draw the form on the display 2020 R1= 1 : C1= 1 : R2=21 : C2=79: GOSUB 1300 'Double box 2030 R1= 3 : C1= 1 : R2= 3 : C2=79: GOSUB 3210 'Horizontal Double 2040 LOCATE 2,3 : PRINT "Pedigree Chart for:" 2050 LOCATE 4,68 : COLOR N : PRINT "Birthdate:" : COLOR W 2060 LOCATE 12, 3 : I = 1 : GOSUB 2470 2070 LOCATE 8,11 : COLOR B : PRINT CHR$(218)+CHR$(196); 2080 LOCATE 9,11 : PRINT CHR$(179); 2090 LOCATE 10,11 : PRINT CHR$(179); 2100 LOCATE 11,11 : PRINT CHR$(179); 2110 LOCATE 8,13 : I = 2 : GOSUB 2510 2120 LOCATE 16,11 : COLOR B : PRINT CHR$(192)+CHR$(196); 2130 LOCATE 13,11 : PRINT CHR$(179); 2140 LOCATE 14,11 : PRINT CHR$(179); 2150 LOCATE 15,11 : PRINT CHR$(179); 2160 LOCATE 16,13 : I = 3 : GOSUB 2510 2170 LOCATE 6,21 : COLOR B : PRINT CHR$(218)+CHR$(196); 2180 LOCATE 7,21 : PRINT CHR$(179); 2190 LOCATE 6,23 : I = 4 : GOSUB 2540 2200 LOCATE 10,21 : COLOR B : PRINT CHR$(192)+CHR$(196); 2210 LOCATE 9,21 : PRINT CHR$(179); 2220 LOCATE 10,23 : I = 5 : GOSUB 2540 2230 LOCATE 14,21 : COLOR B : PRINT CHR$(218)+CHR$(196); 2240 LOCATE 15,21 : PRINT CHR$(179); 2250 LOCATE 14,23 : I = 6 : GOSUB 2540 2260 LOCATE 18,21 : COLOR B : PRINT CHR$(192)+CHR$(196); 2270 LOCATE 17,21 : PRINT CHR$(179); 2280 LOCATE 18,23 : I = 7 : GOSUB 2540 2290 LOCATE 5,31 : COLOR B : PRINT CHR$(218)+CHR$(196); 2300 LOCATE 5,33 : I = 8 : GOSUB 2570 2310 LOCATE 7,31 : COLOR B : PRINT CHR$(192)+CHR$(196); 2320 LOCATE 7,33 : I = 9 : GOSUB 2570 2330 LOCATE 9,31 : COLOR B : PRINT CHR$(218)+CHR$(196); 2340 LOCATE 9,33 : I = 10 : GOSUB 2570 2350 LOCATE 11,31 : COLOR B : PRINT CHR$(192)+CHR$(196); 2360 LOCATE 11,33 : I = 11 : GOSUB 2570 2370 LOCATE 13,31 : COLOR B : PRINT CHR$(218)+CHR$(196); 2380 LOCATE 13,33 : I = 12 : GOSUB 2570 2390 LOCATE 15,31 : COLOR B : PRINT CHR$(192)+CHR$(196); 2400 LOCATE 15,33 : I = 13 : GOSUB 2570 2410 LOCATE 17,31 : COLOR B : PRINT CHR$(218)+CHR$(196); 2420 LOCATE 17,33 : I = 14 : GOSUB 2570 2430 LOCATE 19,31 : COLOR B : PRINT CHR$(192)+CHR$(196); 2440 LOCATE 19,33 : I = 15 : GOSUB 2570 2450 COLOR W,K 2460 RETURN 2470 REM Routine to print the lines 2480 COLOR K,W : PRINT RIGHT$(STR$(I),2); 2490 COLOR B,K : PRINT STRING$(62,95); 2500 RETURN 2510 COLOR K,W : PRINT RIGHT$(STR$(I),2); 2520 COLOR B,K : PRINT STRING$(52,95); 2530 RETURN 2540 COLOR K,W : PRINT RIGHT$(STR$(I),2); 2550 COLOR B,K : PRINT STRING$(42,95); 2560 RETURN 2570 COLOR K,W : PRINT RIGHT$(STR$(I),2); 2580 COLOR B,K : PRINT STRING$(32,95); : COLOR W,K 2590 RETURN 2600 REM Draw the Personal Information Chart 2610 KEY OFF 2620 R1 = 1 : C1 = 1 : R2 = 21 : C2 = 79 : GOSUB 1300 'Double box 2630 R1 = 3 : C1 = 1 : R2 = 3 : C2 = 79 : GOSUB 3210 'Horizontal double 2640 LOCATE 2,3 : PRINT "Personal Information for:" 2650 R1 = 3 : C1 = 40 : R2 = 21 : C2 = 40 : GOSUB 3350 'Vertical Double 2660 LOCATE 4,3 : COLOR N : PRINT "Person:"; 2670 LOCATE 5,3 : COLOR O : PRINT "Record-no.:"; 2680 LOCATE 6,3 : PRINT "Surname:"; 2690 LOCATE 7,3 : PRINT "Given-names:"; 2700 LOCATE 8,3 : PRINT "Sex:"; 2710 R1 = 9 : C1 = 1 : R2 =11 : C2 = 40 : GOSUB 3210 'Horizontal Double 2720 LOCATE 10,3 : COLOR N : PRINT "Male Parent:"; 2730 LOCATE 11,3 : COLOR O : PRINT "Record-no.:"; 2740 LOCATE 12,3 : PRINT "Surname:"; 2750 LOCATE 13,3 : PRINT "Given-names:"; 2760 LOCATE 14,3 : PRINT "Birth-date:"; 2770 R1 = 15 : C1 = 1 : R2 = 15 : C2 = 40 : GOSUB 3280 'Horizontal Single 2780 LOCATE 16,3 : COLOR N : PRINT "Female Parent:"; 2790 LOCATE 17,3 : COLOR O : PRINT "Record-no.:"; 2800 LOCATE 18,3 : PRINT "Surname:"; 2810 LOCATE 19,3 : PRINT "Given-names:"; 2820 LOCATE 20,3 : PRINT "Birth-date:"; 2830 LOCATE 4,42 : COLOR N : PRINT "Person's Vital Statistics:"; 2840 LOCATE 6,42 : COLOR O : PRINT "Birth-date:"; 2850 LOCATE 7,42 : PRINT "Birth-city:"; 2860 LOCATE 8,42 : PRINT "Birth-county:"; 2870 LOCATE 9,42 : PRINT "Birth-state:"; 2880 LOCATE 11,42 : PRINT "Death-date:"; 2890 LOCATE 12,42 : PRINT "Death-city:"; 2900 LOCATE 13,42 : PRINT "Death-county:"; 2910 LOCATE 14,42 : PRINT "Death-state:"; 2920 LOCATE 16,42 : PRINT "Burial-date:"; 2930 LOCATE 17,42 : PRINT "Burial-city:"; 2940 LOCATE 18,42 : PRINT "Burial-county:"; 2950 LOCATE 19,42 : PRINT "Burial-state:"; : COLOR W,K 2960 RETURN 2970 REM draw a Family Group Sheet 2980 KEY OFF 2990 R1 = 1 : C1 = 1 : R2 = 21 : C2 = 79 : GOSUB 1300 'Double box 3000 R1 = 3 : C1 = 1 : R2 = 3 : C2 = 79 : GOSUB 3210 'Double Horizontal 3010 LOCATE 2,3 : PRINT "Family Group Record"; 3020 LOCATE 2,64 : PRINT "Marriage:"; 3030 LOCATE 4,3 : COLOR O : PRINT "Father:"; 3040 LOCATE 4,56 : PRINT "Birthdate:"; 3050 LOCATE 5,3 : PRINT "Mother:"; 3060 LOCATE 5,56 : PRINT "Birthdate:"; 3070 R1 = 6 : C1 = 1 : R2 = 6 : C2 = 79 : GOSUB 3280 'Single Horizontal 3080 LOCATE 7,3 : COLOR O : PRINT "Marriage Date:"; 3090 LOCATE 7,35 : PRINT "Location:"; 3100 R1 = 8 : C1 = 1 : R2 = 8 : C2 = 79 : GOSUB 3210 'Double Horizontal 3110 R1 = 8 : C1 = 5 : R2 = 21 : C2 = 5 : GOSUB 3440 'Single Vertical 3120 R1 = 8 : C1 = 7 : R2 = 21 : C2 = 7 : GOSUB 3440 'Single Vertical 3130 R1 = 8 : C1 = 40 : R2 = 21 : C2 = 40 : GOSUB 3440 'Single Vertical 3140 LOCATE 9,2 : COLOR N : PRINT "No."; 3150 LOCATE 9,6 : PRINT "S"; 3160 LOCATE 9,8 : PRINT "Children:"; 3170 LOCATE 9,41 : PRINT "Birthdate:"; 3180 R1 = 8 : C1 = 52 : R2 = 21 : C2 = 52 : GOSUB 3440 'Single Vertical 3190 LOCATE 9,53 : COLOR N : PRINT "Birth Location:"; : COLOR W 3200 RETURN 3210 REM Subroutine to draw a double horizontal line. Attach to double. 3220 COLOR P 3230 LOCATE R1,C1+1 : PRINT STRING$(C2-C1-1,205) 3240 LOCATE R1,C1 : PRINT CHR$(204); 3250 LOCATE R1,C2 : PRINT CHR$(185); 3260 COLOR W 3270 RETURN 3280 REM Subroutine to draw a single horizontal line. Attach to double. 3290 COLOR P 3300 LOCATE R1,C1+1 : PRINT STRING$(C2-C1-1,196) 3310 LOCATE R1,C1 : PRINT CHR$(199); 3320 LOCATE R1,C2 : PRINT CHR$(182); 3330 COLOR W 3340 RETURN 3350 REM Subroutine to draw a double vertical line. Attach to double. 3360 COLOR P 3370 FOR I = R1 + 1 TO R2 - 1 3380 LOCATE I,C1 : PRINT CHR$(186); 3390 NEXT I 3400 LOCATE R1,C1 : PRINT CHR$(203); 3410 LOCATE R2,C1 : PRINT CHR$(202); 3420 COLOR W 3430 RETURN 3440 REM Subroutine to draw a single vertical line. Attach to double. 3450 COLOR P 3460 FOR I = R1 + 1 TO R2 - 1 3470 LOCATE I,C1 : PRINT CHR$(179); 3480 NEXT I 3490 LOCATE R1,C1 : PRINT CHR$(209); 3500 LOCATE R2,C1 : PRINT CHR$(207); 3510 COLOR W 3520 RETURN 3530 REM Program begins here 3540 REM By: Melvin O. Duke. 3550 REM Read the Parent/Child Index 3560 OPEN DD.PCIDX$+"pcindex" FOR INPUT AS #1 3570 KEY OFF 3580 LOCATE 4,1 : PRINT "Open the Parent/Child Index"; 3590 INPUT #1, PC.COUNT 3600 DIM PA.ID(PC.COUNT), CH.ID(PC.COUNT) 3610 FOR I = 1 TO PC.COUNT 3620 LOCATE 5,1 : PRINT "Reading Index Record #:";I; 3630 INPUT #1, PA.ID(I), CH.ID(I) 3640 NEXT I 3650 CLOSE #1 3660 REM Read the Marriage Index 3670 LOCATE 7,1 : PRINT "Open the Marriage Index"; 3680 OPEN DD.MARIDX$+"mindex" FOR INPUT AS #2 3690 INPUT #2, M.COUNT 3700 DIM PERS.NO(M.COUNT), M.NO(M.COUNT) 3710 FOR I = 1 TO M.COUNT 3720 LOCATE 8,1 : PRINT "Reading Marriage Index Record #:";I: 3730 INPUT #2,PERS.NO(I), M.NO(I) 3740 NEXT I 3750 CLOSE #2 3760 REM Open the Persons File 3770 LOCATE 10,1 : PRINT "Open the Persons File" 3780 OPEN DD.PERS$+"persfile" AS #1 LEN = 256 3790 FIELD 1, 5 AS F1$, 20 AS F2$, 30 AS F3$, 2 AS F4$, 5 AS F5$, 5 AS F6$, 5 AS F7$, 11 AS F8$, 18 AS F9$, 16 AS F10$, 16 AS F11$, 11 AS F12$, 18 AS F13$, 16 AS F14$, 16 AS F15$, 11 AS F16$, 18 AS F17$, 16 AS F18$, 16 AS F19$ 3800 REM open the Marriages File 3810 LOCATE 12,1 : PRINT "Open the Marriage File" 3820 OPEN DD.MARR$+"marrfile" AS #2 LEN = 128 3830 FIELD 2, 5 AS M1$, 5 AS M2$, 5 AS M3$, 5 AS M4$, 11 AS M5$, 18 AS M6$, 16 AS M7$, 16 AS M8$, 45 AS M9$ 3840 REM Open the Ordinance File 3850 IF DD.ORD$ = "no" THEN 3890 3860 LOCATE 14,1 : PRINT "Open the Ordinances File"; 3870 OPEN DD.ORD$+"ordfile" AS #3 LEN = 256 3880 FIELD 3,5ASO1$,11ASO2$,11ASO3$,11ASO4$,5ASO5$,5ASO6$,11ASO7$,11ASO8$,11ASO9$,11ASO10$,11ASO11$,5ASO12$,11ASO13$,11ASO14$,11ASO15$,11ASO16$,11ASO17$,11ASO18$,11ASO19$,11ASO20$,11ASO21$,11ASO22$,11ASO23$,26ASO24$ 3890 REM Obtain a Person Record from the User 3900 LOCATE 20,1 : PRINT SPACE$(79);: LOCATE 20,1 3910 LINE INPUT "Enter the Record-number of a Person (0 to quit): ";REPLY$ 3920 IF REPLY$ = "0" THEN 9350 3930 PERS(1) = VAL(REPLY$) 3940 IF PERS(1) < 1 OR PERS(1) > MAX.PER THEN KEY ON : CLS : KEY OFF : LOCATE 19,1 : PRINT "Number is out of range"; : GOTO 3890 3950 REM Obtain the information about a person 3960 GET #1, PERS(1) 3970 KEY ON : CLS 3980 GOSUB 4550 'Extract Personal Information 3990 GOSUB 2600 'Draw the form 4000 LOCATE 2,30 : COLOR W : PRINT LEFT$(T3$ + " " + T2$,35); 4010 LOCATE 2,66 : PRINT "Person:";T1 4020 LOCATE 5,16 : COLOR G : PRINT T1 4030 LOCATE 6,16 : PRINT T2$; 4040 LOCATE 7,16 : PRINT LEFT$(T3$,24); 4050 LOCATE 8,16 : PRINT T4$; 4060 LOCATE 6,57 : PRINT T8$; 4070 LOCATE 7,57 : PRINT T9$; 4080 LOCATE 8,57 : PRINT T10$; 4090 LOCATE 9,57 : PRINT T11$; 4100 LOCATE 11,57 : PRINT T12$; 4110 LOCATE 12,57 : PRINT T13$; 4120 LOCATE 13,57 : PRINT T14$; 4130 LOCATE 14,57 : PRINT T15$; 4140 LOCATE 16,57 : PRINT T16$; 4150 LOCATE 17,57 : PRINT T17$; 4160 LOCATE 18,57 : PRINT T18$; 4170 LOCATE 19,57 : PRINT T19$; 4180 PERS(2) = T6 4190 PERS(3) = T7 4200 COLOR W 4210 REM Check if Male Parent is known 4220 IF PERS(2) = 0 THEN GOSUB 4890 : GOTO 4250 4230 GET #1, PERS(2) 4240 GOSUB 4550 'Extract 4250 LOCATE 11,16 : COLOR G : PRINT T1; 4260 LOCATE 12,16 : PRINT T2$; 4270 LOCATE 13,16 : PRINT LEFT$(T3$,24); 4280 LOCATE 14,16 : PRINT T8$; 4290 COLOR W 4300 REM Check if Female Parent is known 4310 IF PERS(3) = 0 THEN GOSUB 4890 : GOTO 4340 4320 GET #1, PERS(3) 4330 GOSUB 4550 'Extract 4340 LOCATE 17,16 : COLOR G : PRINT T1; 4350 LOCATE 18,16 : PRINT T2$; 4360 LOCATE 19,16 : PRINT LEFT$(T3$,24); 4370 LOCATE 20,16 : PRINT T8$; 4380 COLOR W,K : LOCATE 23,1 : PRINT SPACE$(79); 4390 LOCATE 24,1 : PRINT SPACE$(79); 4400 LOCATE 24,1 : PRINT "(Possible Requests: ps, pc, fg, "; 4410 IF DD.ORD$ = "no" THEN 4430 4420 PRINT "o, "; 4430 PRINT "p1...pn, m1...mn, q)"; 4440 LOCATE 23,1 4450 LINE INPUT "Type a Request. Then press the 'enter' key.: "; REPLY$ 4460 IF REPLY$ = "ps" OR REPLY$ = "PS" THEN GOSUB 7950 : GOTO 4380 4470 IF REPLY$ = "pc" OR REPLY$ = "PC" THEN 5090 'Pedigree Chart 4480 IF REPLY$ = "fg" OR REPLY$ = "FG" THEN 6600 'Family Group 4490 IF DD.ORD$ = "no" THEN 4510 4500 IF REPLY$ = "o" OR REPLY$ = "O" THEN 8090 'Ordinances 4510 IF LEFT$(REPLY$,1) = "p" OR LEFT$(REPLY$,1) = "P" THEN PERS(1) = VAL(RIGHT$(REPLY$,LEN(REPLY$)-1)) : KEY ON : CLS : KEY OFF : GOTO 3940 4520 IF LEFT$(REPLY$,1) = "m" OR LEFT$(REPLY$,1) = "M" THEN 9220 4530 IF LEFT$(REPLY$,1) = "q" OR LEFT$(REPLY$,1) = "Q" THEN 9350 4540 LOCATE 22,1 : PRINT "Error in Previous Reply ";REPLY$; : GOTO 4380 4550 REM Routine to Extract Personal Information 4560 T1! = CVS(F1$) : T1 = T1! 4570 T2$ = F2$ 4580 FOR J = 1 TO LEN(F2$) -1 4590 IF RIGHT$(T2$,1)=" " THEN T2$ = LEFT$(T2$,LEN(T2$)-1) ELSE J = LEN(F2$)-1 4600 NEXT J 4610 T3$ = F3$ 4620 FOR J = 1 TO LEN(F3$) -1 4630 IF RIGHT$(T3$,1)=" " THEN T3$ = LEFT$(T3$,LEN(T3$)-1) ELSE J = LEN(F3$)-1 4640 NEXT J 4650 T4$ = F4$ 4660 IF LEFT$(T4$,1) = MALE.LTR$ THEN T4$ = MALE.SEX$ 4670 IF LEFT$(T4$,1) = FEMALE.LTR$ THEN T4$ = FEMALE.SEX$ 4680 T6! = CVS(F6$) : T6 = T6! 4690 T7! = CVS(F7$) : T7 = T7! 4700 T8$ = F8$ 4710 T9$ = F9$ 4720 FOR J = 1 TO LEN(F9$) -1 4730 IF RIGHT$(T9$,1)=" " THEN T9$ = LEFT$(T9$,LEN(T9$)-1) ELSE J = LEN(F9$)-1 4740 NEXT J 4750 T10$ = F10$ 4760 T11$ = F11$ 4770 FOR J = 1 TO LEN(F11$) -1 4780 IF RIGHT$(T11$,1)=" " THEN T11$ = LEFT$(T11$,LEN(T11$)-1) ELSE J = LEN(F11$)-1 4790 NEXT J 4800 T12$ = F12$ 4810 T13$ = F13$ 4820 T14$ = F14$ 4830 T15$ = F15$ 4840 T16$ = F16$ 4850 T17$ = F17$ 4860 T18$ = F18$ 4870 T19$ = F19$ 4880 RETURN 4890 REM Blank out a Record 4900 T1 = 0 4910 T2$ = "" 4920 T3$ = "" 4930 T4$ = "" 4940 T6 = 0 4950 T7 = 0 4960 T8$ = "" 4970 T9$ = "" 4980 T10$ = "" 4990 T11$ = "" 5000 T12$ = "" 5010 T13$ = "" 5020 T14$ = "" 5030 T15$ = "" 5040 T16$ = "" 5050 T17$ = "" 5060 T18$ = "" 5070 T19$ = "" 5080 RETURN 5090 REM Routine to Produce a Pedigree Chart 5100 KEY ON : CLS : KEY OFF 5110 GOSUB 2000 'Draw the Chart 5120 GET #1, PERS(1) 5130 GOSUB 4550 'Extract the Person 5140 LOCATE 2,23 : COLOR W : PRINT LEFT$(T3$ + " " + T2$,42); 5150 LOCATE 2,66 : PRINT "Person:"; PERS(1); 5160 THIS.PERS = PERS(1) : GOSUB 9430 5170 LOCATE 12,6 : COLOR G : PRINT LEFT$(VALUE$,61); 5180 LOCATE 12,68 : PRINT T8$; 5190 PERS(2) = T6 5200 PERS(3) = T7 5210 REM Get 11 5220 IF PERS(2) = 0 THEN GOSUB 4890 : GOTO 5280 5230 GET #1, PERS(2) 5240 GOSUB 4550 'Extract 5250 THIS.PERS = PERS(2) : GOSUB 9430 5260 LOCATE 8,16 : PRINT LEFT$(VALUE$,51); 5270 LOCATE 8,68 : PRINT T8$; 5280 PERS(4) = T6 5290 PERS(5) = T7 5300 REM Get 10 5310 IF PERS(3) = 0 THEN GOSUB 4890 : GOTO 5370 5320 GET #1, PERS(3) 5330 GOSUB 4550 'Extract 5340 THIS.PERS = PERS(3): GOSUB 9430 5350 LOCATE 16,16 : PRINT LEFT$(VALUE$,51); 5360 LOCATE 16,68 : PRINT T8$; 5370 PERS(6) = T6 5380 PERS(7) = T7 5390 REM Get 111 5400 IF PERS(4) = 0 THEN GOSUB 4890 : GOTO 5460 5410 GET #1, PERS(4) 5420 GOSUB 4550 'Extract 5430 THIS.PERS = PERS(4): GOSUB 9430 5440 LOCATE 6,26 : PRINT LEFT$(VALUE$,41); 5450 LOCATE 6,68 : PRINT T8$; 5460 PERS(8) = T6 5470 PERS(9) = T7 5480 REM Get 110 5490 IF PERS(5) = 0 THEN GOSUB 4890 : GOTO 5550 5500 GET #1, PERS(5) 5510 GOSUB 4550 'Extract 5520 THIS.PERS = PERS(5): GOSUB 9430 5530 LOCATE 10,26 : PRINT LEFT$(VALUE$,41); 5540 LOCATE 10,68 : PRINT T8$; 5550 PERS(10) = T6 5560 PERS(11) = T7 5570 REM Get 101 5580 IF PERS(6) = 0 THEN GOSUB 4890 : GOTO 5640 5590 GET #1, PERS(6) 5600 GOSUB 4550 'Extract 5610 THIS.PERS = PERS(6): GOSUB 9430 5620 LOCATE 14,26 : PRINT LEFT$(VALUE$,41); 5630 LOCATE 14,68 : PRINT T8$; 5640 PERS(12) = T6 5650 PERS(13) = T7 5660 REM Get 100 5670 IF PERS(7) = 0 THEN GOSUB 4890 : GOTO 5730 5680 GET #1, PERS(7) 5690 GOSUB 4550 'Extract 5700 THIS.PERS = PERS(7): GOSUB 9430 5710 LOCATE 18,26 : PRINT LEFT$(VALUE$,41); 5720 LOCATE 18,68 : PRINT T8$; 5730 PERS(14) = T6 5740 PERS(15) = T7 5750 REM Get 1111 5760 IF PERS(8) = 0 THEN GOSUB 4890 : GOTO 5820 5770 GET #1, PERS(8) 5780 GOSUB 4550 'Extract 5790 THIS.PERS = PERS(8): GOSUB 9430 5800 LOCATE 5,36 : PRINT LEFT$(VALUE$,31); 5810 LOCATE 5,68 : PRINT T8$; 5820 REM 5830 REM Get 1110 5840 IF PERS(9) = 0 THEN GOSUB 4890 : GOTO 5900 5850 GET #1, PERS(9) 5860 GOSUB 4550 'Extract 5870 THIS.PERS = PERS(9): GOSUB 9430 5880 LOCATE 7,36 : PRINT LEFT$(VALUE$,31); 5890 LOCATE 7,68 : PRINT T8$; 5900 REM 5910 REM Get 1101 5920 IF PERS(10) = 0 THEN GOSUB 4890 : GOTO 5980 5930 GET #1, PERS(10) 5940 GOSUB 4550 'Extract 5950 THIS.PERS = PERS(10): GOSUB 9430 5960 LOCATE 9,36 : PRINT LEFT$(VALUE$,31); 5970 LOCATE 9,68 : PRINT T8$; 5980 REM 5990 REM Get 1100 6000 IF PERS(11) = 0 THEN GOSUB 4890 : GOTO 6060 6010 GET #1, PERS(11) 6020 GOSUB 4550 'Extract 6030 THIS.PERS = PERS(11): GOSUB 9430 6040 LOCATE 11,36 : PRINT LEFT$(VALUE$,31); 6050 LOCATE 11,68 : PRINT T8$; 6060 REM 6070 REM Get 1011 6080 IF PERS(12) = 0 THEN GOSUB 4890 : GOTO 6140 6090 GET #1, PERS(12) 6100 GOSUB 4550 'Extract 6110 THIS.PERS = PERS(12): GOSUB 9430 6120 LOCATE 13,36 : PRINT LEFT$(VALUE$,31); 6130 LOCATE 13,68 : PRINT T8$; 6140 REM 6150 REM Get 1010 6160 IF PERS(13) = 0 THEN GOSUB 4890 : GOTO 6220 6170 GET #1, PERS(13) 6180 GOSUB 4550 'Extract 6190 THIS.PERS = PERS(13): GOSUB 9430 6200 LOCATE 15,36 : PRINT LEFT$(VALUE$,31); 6210 LOCATE 15,68 : PRINT T8$; 6220 REM 6230 REM Get 1001 6240 IF PERS(14) = 0 THEN GOSUB 4890 : GOTO 6300 6250 GET #1, PERS(14) 6260 GOSUB 4550 'Extract 6270 THIS.PERS = PERS(14): GOSUB 9430 6280 LOCATE 17,36 : PRINT LEFT$(VALUE$,31); 6290 LOCATE 17,68 : PRINT T8$; 6300 REM 6310 REM Get 1000 6320 IF PERS(15) = 0 THEN GOSUB 4890 : GOTO 6380 6330 GET #1, PERS(15) 6340 GOSUB 4550 'Extract 6350 THIS.PERS = PERS(15): GOSUB 9430 6360 LOCATE 19,36 : PRINT LEFT$(VALUE$,31); 6370 LOCATE 19,68 : PRINT T8$; 6380 COLOR W 6390 LOCATE 23,1 : PRINT SPACE$(79); 6400 LOCATE 24,1 : PRINT SPACE$(79); 6410 LOCATE 24,1 : PRINT "(Possible Requests: ps, pc, fg, l1...ln, p1...pn, m1...mn, q)"; 6420 LOCATE 23,1 6430 LINE INPUT "Type a Request. Then press the 'enter' key.: "; REPLY$ 6440 IF REPLY$ = "ps" OR REPLY$ = "PS" THEN GOSUB 7950 : GOTO 6390 6450 IF REPLY$ = "pc" OR REPLY$ = "PC" THEN 5090 6460 IF REPLY$ = "fg" OR REPLY$ = "FG" THEN 6600 6470 IF LEFT$(REPLY$,1) = "l" OR LEFT$(REPLY$,1) = "L" THEN 6480 ELSE 6560 6480 WHO = (VAL(RIGHT$(REPLY$,LEN(REPLY$)-1))) 6490 IF WHO < 1 OR WHO > 15 THEN 6500 ELSE 6550 6500 KEY ON : CLS : KEY OFF 6510 LOCATE 20,1 : PRINT "Line-number is out of range" 6520 LOCATE 22,1 : PRINT "Press any key to continue" 6530 A$ = INKEY$ : IF A$ = "" THEN 6530 6540 GOTO 3940 6550 PERS(1) = PERS(WHO) : GOTO 3940 6560 IF LEFT$(REPLY$,1) = "p" OR LEFT$(REPLY$,1) = "P" THEN PERS(1) = VAL(RIGHT$(REPLY$,LEN(REPLY$)-1)) : GOTO 3940 6570 IF LEFT$(REPLY$,1) = "m" OR LEFT$(REPLY$,1) = "M" THEN 9220 6580 IF LEFT$(REPLY$,1) = "q" OR LEFT$(REPLY$,1) = "Q" THEN 9350 6590 LOCATE 22,1 : PRINT "Error in Previous Reply ";REPLY$; : GOTO 6390 6600 REM Routine to Produce a Family Group Record 6610 KEY ON : CLS 6620 GOSUB 2970 'Draw the form 6630 REM search the marriage index for the Person's Marriage 6640 FOUND = 0 6650 REM Establish Skip-ahead Start-value and Delta 6660 START.AT = 1 : DELTA = INT(M.COUNT/10) : IF DELTA = 0 THEN 6710 6670 REM Add delta and test if too far 6680 START.AT = START.AT + DELTA 6690 IF START.AT > 9 * DELTA THEN 6710 6700 IF PERS(1) > PERS.NO(START.AT) THEN 6680 6710 START.AT = START.AT - DELTA 6720 REM Search Routine 6730 FOR L = START.AT TO M.COUNT 6740 IF PERS(1) > PERS.NO(L) THEN 6800 6750 IF PERS(1) < PERS.NO(L) THEN L = M.COUNT : GOTO 6800 6760 REM found a Marriage 6770 FOUND = 1 6780 GET #2, M.NO(L) 6790 L = M.COUNT 6800 NEXT L 6810 IF FOUND = 1 THEN 6870 6820 REM No marriage found 6830 LOCATE 22,1 : COLOR W,K : PRINT "No Marriage Found"; 6840 LOCATE 23,1 : PRINT "Press any key to continue"; 6850 A$ = INKEY$ : IF A$ = "" THEN 6850 6860 KEY ON : CLS : KEY OFF : GOTO 3950 6870 REM extract Information from the Marriage Record 6880 TT1! = CVS(M1$) : TT1 = TT1! 6890 IF TT1 < 1 THEN 6820 6900 TT2! = CVS(M2$) : TT2 = TT2! 6910 TT3! = CVS(M3$) : TT3 = TT3! 6920 TT5$ = M5$ 6930 TT6$ = M6$ 6940 REM Right-trim 6950 FOR J = 1 TO LEN(M6$) -1 6960 IF RIGHT$(TT6$,1)=" " THEN TT6$ = LEFT$(TT6$,LEN(TT6$)-1) ELSE J = LEN(M6$)-1 6970 NEXT J 6980 TT7$ = M7$ 6990 TT8$ = M8$ 7000 REM Right-trim 7010 FOR J = 1 TO LEN(M8$) -1 7020 IF RIGHT$(TT8$,1)=" " THEN TT8$ = LEFT$(TT8$,LEN(TT8$)-1) ELSE J = LEN(M8$)-1 7030 NEXT J 7040 TT9$ = M9$ 7050 REM print the Marriage Information 7060 LOCATE 2,73 : COLOR W : PRINT TT1 7070 LOCATE 7,18 : COLOR G : PRINT TT5$ 7080 IF TT6$ = " " AND TT8$ = " " THEN 7100 7090 LOCATE 7,45 : PRINT LEFT$(TT6$+", "+TT8$,34) 7100 REM get the Husband's Record 7110 GET #1, TT2 7120 GOSUB 4550 'Extract 7130 THIS.PERS = TT2 : GOSUB 9430 7140 LOCATE 4,11 : COLOR G : PRINT LEFT$(VALUE$,44); 7150 LOCATE 4,67 : PRINT T8$; 7160 REM get the Wife's Record 7170 GET #1, TT3 7180 GOSUB 4550 'Extract 7190 THIS.PERS = TT3 : GOSUB 9430 7200 LOCATE 5,11 : COLOR G : PRINT LEFT$(VALUE$,44); 7210 LOCATE 5,67 : PRINT T8$; 7220 REM Blank previous children and find new ones 7230 FOR IC = 1 TO CHILD.COUNT 7240 CH(IC) = 0 7250 NEXT IC 7260 CHILD.COUNT = 0 7270 REM search the parent/child index 7280 REM Establish Skip-ahead Start-value and Delta 7290 START.AT = 1 : DELTA = INT(PC.COUNT/10) : IF DELTA = 0 THEN 7340 7300 REM Add delta and test if too far 7310 START.AT = START.AT + DELTA 7320 IF START.AT > 9 * DELTA THEN 7340 7330 IF HUSB > PA.ID(START.AT) THEN 7310 7340 START.AT = START.AT - DELTA 7350 REM Search Routine 7360 FOR LL = START.AT TO PC.COUNT 7370 IF TT2 > PA.ID(LL) THEN 7760 7380 IF TT2 < PA.ID(LL) THEN LL = PC.COUNT : GOTO 7760 7390 REM found a child 7400 GET #1, CH.ID(LL) 7410 GOSUB 4550 'Extract 7420 REM verify that Mother is the same 7430 IF TT3 <> T7 THEN 7760 7440 REM Found a valid child 7450 CHILD.COUNT = CHILD.COUNT + 1 7460 SHOW.COUNT = CHILD.COUNT 7470 IF CHILD.COUNT = 1 THEN 7640 7480 X11 = 0 7490 X11 = X11 + 11 7500 IF CHILD.COUNT > X11 THEN SHOW.COUNT = CHILD.COUNT - X11 : GOTO 7490 7510 IF (CHILD.COUNT-1) MOD 11 = 0 THEN 7520 ELSE 7640 7520 LOCATE 23,1 : PRINT SPACE$(79); 7530 LOCATE 23,1 7540 PRINT "Press p to Print Screen, or any other key to continue" 7550 A$ = INKEY$ : IF A$ = "" THEN 7550 7560 IF A$ = "P" OR A$ = "p" THEN GOSUB 7950 : GOTO 7550 7570 REM blank the previous children 7580 FOR ROW = 9 TO 20 7590 LOCATE ROW,2 : PRINT SPACE$(77); 7600 NEXT ROW 7610 REM restore the rest of the display 7620 GOSUB 3110 7630 LOCATE 23,1 : PRINT SPACE$(79) 7640 CH(CHILD.COUNT) = CH.ID(LL) 7650 LOCATE 9+SHOW.COUNT,2 : COLOR K,W 7660 CC.STR$ = " "+STR$(CHILD.COUNT) 7670 PRINT RIGHT$(CC.STR$,3); : COLOR G,K 7680 LOCATE 9+SHOW.COUNT,6 : PRINT LEFT$(F4$,1); 'Sex 7690 NM$ = T2$+", "+T3$ 7700 IF T2$ = " " OR T3$ = " " THEN NM$ = T2$+T3$ 7710 LOCATE 9+SHOW.COUNT,8 : PRINT LEFT$(NM$,32); 7720 LOCATE 9+SHOW.COUNT,41 : PRINT T8$; 7730 IF T9$ = " " AND T11$ = " " THEN 7750 7740 LOCATE 9+SHOW.COUNT,53 : PRINT LEFT$(T9$+", "+T11$,26); 7750 COLOR W,K 7760 NEXT LL 7770 LOCATE 23,1 : PRINT SPACE$(79); 7780 LOCATE 24,1 : PRINT SPACE$(79); 7790 LOCATE 24,1 : PRINT "(Possible Requests: ps, f, m, p1...pn, c1...cn, m1...mn, q)"; 7800 LOCATE 23,1 7810 LINE INPUT "Type a Request. Then press the 'enter' key.: "; REPLY$ 7820 IF REPLY$ = "ps" OR REPLY$ = "PS" THEN GOSUB 7950 : GOTO 7770 7830 IF REPLY$ = "pc" OR REPLY$ = "PC" THEN LOCATE 22,1 : PRINT "Error in Previous Reply ";REPLY$; : GOTO 7770 7840 IF REPLY$ = "f" OR REPLY$ = "F" THEN PERS(1) = TT2 : GOTO 3950 7850 IF REPLY$ = "m" OR REPLY$ = "M" THEN PERS(1) = TT3 : GOTO 3950 7860 IF LEFT$(REPLY$,1) = "p" OR LEFT$(REPLY$,1) = "P" THEN PERS(1) = VAL(RIGHT$(REPLY$,LEN(REPLY$)-1)) : GOTO 3940 7870 IF LEFT$(REPLY$,1) = "c" OR LEFT$(REPLY$,1) = "C" THEN 7880 ELSE 7920 7880 CHLD = VAL(RIGHT$(REPLY$,LEN(REPLY$)-1)) 7890 IF CHLD < 1 OR CHLD > CHILD.COUNT THEN 7940 7900 PERS(1) = CH(CHLD) 7910 GOTO 3950 'for personal 7920 IF LEFT$(REPLY$,1) = "m" OR LEFT$(REPLY$,1) = "M" THEN 9220 'marriage 7930 IF LEFT$(REPLY$,1) = "q" OR LEFT$(REPLY$,1) = "Q" THEN 9350 7940 LOCATE 22,1 : PRINT "Error in Previous Reply ";REPLY$; : GOTO 7770 7950 REM Routine to Print the Screen 7960 REM Accessed by users 'ps' reply 7970 LPRINT : LPRINT : LPRINT : LPRINT 7980 FOR ROW = 2 TO 20 7990 FOR COL = 1 TO 79 8000 X = SCREEN(ROW,COL) 8010 IF X > 125 THEN X = 32 8020 IF X < 32 THEN X = 32 8030 LPRINT CHR$(X); 8040 NEXT COL 8050 LPRINT 8060 NEXT ROW 8070 LPRINT FORM.FEED$; 8080 RETURN 8090 REM Routine to Display the Ordinances 8100 KEY ON : CLS 8110 GET #1, PERS(1) : GOSUB 4550 8120 GET #3, PERS(1) 8130 SEX$ = " " 8140 IF T4$ = MALE.SEX$ THEN SEX$ = MALE.LTR$ 8150 IF T4$ = FEMALE.SEX$ THEN SEX$ = FEMALE.LTR$ 8160 REM Extract the Ordinance Information 8170 U1! = CVS(O1$) : U1 = U1! 8180 REM Blank Ordinances of no Ordinance Record Present 8190 IF U1 = 0 THEN GOSUB 9540 : GOTO 8430 8200 U2$ = O2$ 8210 U3$ = O3$ 8220 U4$ = O4$ 8230 U5! = CVS(O5$) : U5 = U5! 8240 U6! = CVS(O6$) : U6 = U6! 8250 U7$ = O7$ 8260 U8$ = O8$ 8270 U9$ = O9$ 8280 U10$ = O10$ 8290 U11$ = O11$ 8300 U12! = CVS(O12$) : U12 = U12! 8310 U13$ = O13$ 8320 U14$ = O14$ 8330 U15$ = O15$ 8340 U16$ = O16$ 8350 U17$ = O17$ 8360 U18$ = O18$ 8370 U19$ = O19$ 8380 U20$ = O20$ 8390 U21$ = O21$ 8400 U22$ = O22$ 8410 U23$ = O23$ 8420 U24$ = O24$ 8430 KEY OFF 8440 R1 = 1 : C1 = 1 : R2 = 21 : C2 = 79 : GOSUB 1300 'Double Box 8450 R1 = 3 : C1 = 1 : R2 = 3 : C2 = 79 : GOSUB 3210 'Horizontal Double 8460 R1 = 19 : C1 = 1 : R2 = 19 : C2 = 79 : GOSUB 3210 'Horizontal Double 8470 LOCATE 2,3 : PRINT "Ordinances of:"; 8480 LOCATE 4,7 : COLOR N : PRINT "Personal Record"; : COLOR O 8490 LOCATE 5,3 : PRINT "Christening:"; 8500 LOCATE 6,3 : PRINT "Blessing:"; 8510 LOCATE 7,3 : PRINT "Sealed to Parents:"; 8520 LOCATE 8,5 : PRINT "Father's Rec.no:"; 8530 LOCATE 9,6 : PRINT "Name:"; 8540 LOCATE 10,5 : PRINT "Mother's Rec.no:"; 8550 LOCATE 11,6 : PRINT "Name:"; 8560 LOCATE 12,3 : PRINT "Baptism:"; 8570 LOCATE 13,3 : PRINT "Confirmation:"; 8580 LOCATE 14,3 : PRINT "Patriarchal Blessing:"; 8590 LOCATE 15,3 : PRINT "Endowment:"; 8600 REM Test for male. Skip if male. 8610 IF SEX$ = MALE.LTR$ THEN 8650 8620 LOCATE 16,3 : PRINT "Sealed to Husband:"; 8630 LOCATE 17,5 : PRINT "Husband's Rec.no:"; 8640 LOCATE 18,6 : PRINT "Name:"; 8650 REM Test for Male. Skip if not 8660 IF SEX$ <> MALE.LTR$ THEN 8800 8670 R1 = 3 : R2 = 19 : C1 = 51 : C2 = 51 : GOSUB 3350 "Vertical Double 8680 LOCATE 4,57 : COLOR N : PRINT "Priesthood Record"; : COLOR O 8690 LOCATE 5,53 : PRINT "Aaronic:"; 8700 LOCATE 6,55 : PRINT "Deacon:"; 8710 LOCATE 7,55 : PRINT "Teacher:"; 8720 LOCATE 8,55 : PRINT "Priest:"; 8730 LOCATE 10,53 : PRINT "Melchizedek:"; 8740 LOCATE 11,55 : PRINT "Elder:"; 8750 LOCATE 12,55 : PRINT "Seventy:"; 8760 LOCATE 13,55 : PRINT "High Priest:"; 8770 LOCATE 15,53 : PRINT "Bishop:"; 8780 LOCATE 16,53 : PRINT "Patriarch:"; 8790 LOCATE 17,53 : PRINT "Apostle:"; 8800 LOCATE 20,3 : PRINT "Occupation:"; 8810 REM Print the Information Currently Present 8820 LOCATE 2,18 : COLOR W : PRINT LEFT$(T3$ + " " + T2$,47); 8830 LOCATE 2,66 : PRINT "Rec.no:";T1; 8840 LOCATE 5,28 : COLOR G : PRINT U2$; 8850 LOCATE 6,28 : PRINT U3$; 8860 LOCATE 7,28 : PRINT U4$; 8870 IF SEX$ = MALE.LTR$ THEN NO.SP = 38 ELSE NO.SP = 51 8880 LOCATE 8,27 : PRINT U5; 8890 IF U5 = 0 THEN 8920 8900 GET #1, U5 : GOSUB 4550 'Extract Father Information 8910 LOCATE 9,12 : PRINT LEFT$(T3$ + " " + T2$,NO.SP); 8920 LOCATE 10,27 : PRINT U6; 8930 IF U6 = 0 THEN 8960 8940 GET #1, U6 : GOSUB 4550 'Extract Mother Information 8950 LOCATE 11,12 : PRINT LEFT$(T3$ + " " + T2$,NO.SP); 8960 LOCATE 12,28 : PRINT U7$; 8970 LOCATE 13,28 : PRINT U8$; 8980 LOCATE 14,28 : PRINT U9$; 8990 LOCATE 15,28 : PRINT U10$; 9000 REM Test for male. Skip if male. 9010 IF SEX$ = MALE.LTR$ THEN 9070 9020 LOCATE 16,28 : PRINT U11$; 9030 LOCATE 17,27 : PRINT U12; 9040 IF U12 = 0 THEN 9070 9050 GET #1, U12 : GOSUB 4550 'Extract Spouse Information 9060 LOCATE 18,12 : PRINT T3$ + " " + T2$; 9070 REM Test for Male. Bypass if not. 9080 IF SEX$ <> MALE.LTR$ THEN 9200 9090 LOCATE 5,67 : PRINT U13$; 9100 LOCATE 6,67 : PRINT U14$; 9110 LOCATE 7,67 : PRINT U15$; 9120 LOCATE 8,67 : PRINT U16$; 9130 LOCATE 10,67 : PRINT U17$; 9140 LOCATE 11,67 : PRINT U18$; 9150 LOCATE 12,67 : PRINT U19$; 9160 LOCATE 13,67 : PRINT U20$; 9170 LOCATE 15,67 : PRINT U21$; 9180 LOCATE 16,67 : PRINT U22$; 9190 LOCATE 17,67 : PRINT U23$; 9200 LOCATE 20,15 : PRINT U24$; 9210 GOTO 4380 'For User Action 9220 REM Marriage was requested by Number 9230 MARRIAGE = VAL(RIGHT$(REPLY$,LEN(REPLY$)-1)) 9240 KEY ON : CLS : KEY OFF 9250 IF MARRIAGE > 0 AND MARRIAGE <= MAX.MAR THEN 9320 9260 LOCATE 22,1 : PRINT SPACE$(79); 9270 LOCATE 22,1 : PRINT "Invalid Marriage Number"; 9280 LOCATE 23,1 : PRINT SPACE$(79); 9290 LOCATE 23,1 : PRINT "Press any key to continue." 9300 A$ = INKEY$ : IF A$ = "" THEN 9300 9310 GOTO 3950 9320 GOSUB 2970 'Print the form 9330 GET #2, MARRIAGE 9340 GOTO 6870 9350 REM Wrapup 9360 CLOSE #1 9370 CLOSE #2 9380 IF DD.ORD$ = "no" THEN 9400 9390 CLOSE #3 9400 KEY ON : CLS : KEY OFF : LOCATE 21,1 : COLOR W,K 9410 PRINT "End of Program" 9420 RUN DD.MENU$+"menu" 9430 REM Routine to Convert a number to a string. This.pers is input 9440 REM value$ is output, with record number and persons name. 9450 VALUE$ = STR$(THIS.PERS) 9460 WIDE = LEN(VALUE$) 9470 VALUE$ = RIGHT$(VALUE$,WIDE-1) 9480 NM$ = T2$+", "+T3$ 9490 IF T2$ = " " OR T3$ = " " THEN NM$ = T2$+T3$ 9500 IF T2$ = " " AND T3$ = " " THEN NM$ = "" 9510 IF CHART.NOS$ <> "n" THEN VALUE$ = NM$ : GOTO 9530 9520 VALUE$ = "("+VALUE$+") "+NM$ 9530 RETURN 9540 REM Blank Ordinances if No Ord Record 9550 U2$ = "" : U3$ = "" : U4$ = "" 9560 U5 = 0 : U6 = 0 : U12 = 0 9570 U7$ = "" : U8$ = "" : U9$ = "" : U10$ = "" 9580 U11$ = "" : U13$ = "" : U14$ = "" : U15$ = "" 9590 U16$ = "" : U17$ = "" : U18$ = "" : U19$ = "" 9600 U20$ = "" : U21$ = "" : U22$ = "" : U23$ = "" 9610 U24$ = "" 9620 RETURN